home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 3 / BBS in a box - Trilogy III.iso / Files / Tele / Pete Johnson / TImport 2.0.3<source> Folder / ImpHostFile.p < prev    next >
Encoding:
Text File  |  1991-06-25  |  5.2 KB  |  189 lines  |  [TEXT/PJMM]

  1. unit ImpHostFile;
  2.  
  3. {    Created June 15, 1989.                                                }
  4.  
  5. interface
  6.  
  7.     uses
  8.         Globals, HelloTabby;
  9.  
  10.     var
  11.         CLPath, ULPath, MESSAGESPath, SysopName: STR255;
  12.         NextLaunchDateRec: DateTimeRec;
  13.         MsgPath: STR255;
  14.         LowMsg, HiMsg, MSGTXTLength: longint;
  15.         SectionCount, ErrorCode: integer;
  16.  
  17.     procedure ReadConfig;
  18.  
  19.     procedure MakeTextFile (FileName: STR255);
  20.  
  21.     procedure FrameDItem (dLog: DialogPtr; iNum: integer);
  22.  
  23. implementation
  24.  
  25. {-----------------------------------------------------------------    }
  26.  
  27.     procedure FrameDItem;
  28.  
  29.         var
  30.             iBox: Rect;
  31.             iType: integer;
  32.             iHandle: Handle;
  33.             oldPenState: PenState;
  34.  
  35.     begin
  36.         GetPenState(oldPenState);
  37.         GetDItem(dLog, iNum, iType, iHandle, iBox);
  38.         InsetRect(iBox, -4, -4);
  39.         PenSize(3, 3);
  40.         FrameRoundRect(iBox, 16, 16);
  41.         SetPenState(oldPenState)
  42.     end;
  43.  
  44. {-----------------------------------------------------------------    }
  45.  
  46.     procedure MakeTextFile;
  47.  
  48. { Procedure sets up QUED-compatible text  file                                }
  49.  
  50.         var
  51.             fndrInfo: FInfo;
  52.  
  53.     begin
  54.         Err := GetFInfo(FileName, vRefNum, fndrInfo);
  55.         if Err = noErr then
  56.             begin
  57.                 fndrInfo.fdType := 'TEXT';
  58.                 fndrInfo.fdCreator := CreatorType;
  59.                 Err := SetFInfo(FileName, vRefNum, fndrInfo);
  60.             end
  61.         else
  62.             Err := Create(FileName, vRefNum, CreatorType, 'TEXT');
  63.     end;
  64.  
  65. { ------------------------------------------------------ }
  66.  
  67.     procedure ReadConfig;
  68.  
  69. {    Reads Config file and returns Path:CallerLog, Path:UserLog, Path:MESSAGES, SysopName (all caps) and    }
  70. {    NextLaunchDateRec.                                                                                                    }
  71.  
  72.         var
  73.             AString: string;
  74.             ALongInt: LongInt;
  75.             ConfigRefNum: integer;
  76.             FileEnd, CharsToSend, NextLaunchTime: longint;
  77.             ConfigErr: OSErr;
  78.             VolName: STR255;
  79.             ConfigErrorFlag: boolean;
  80.  
  81.     begin
  82.  
  83.         ConfigErrorFlag := false;
  84.  
  85.         ConfigErr := GetVol(@VolName, VRefNum);        { Get volume ref # for default volume }
  86.         if (ConfigErr <> NoErr) then
  87.             ConfigErrorFlag := true;
  88.         MESSAGESPath := '';
  89.         ULPath := '';
  90.         CLPath := '';
  91.         SysopName := 'SYSTEM OPERATOR';
  92.         ErrorCode := 500;
  93.         ConfigErr := FSOpen(concat(gDefaultpath, 'Config'), VRefNum, ConfigRefNum);
  94.         if (ConfigErr = NoErr) then
  95.             begin
  96.                 ErrorCode := 501;
  97.                 if (ConfigErr = NoErr) then
  98.                     begin
  99.                         ConfigErr := GetEOF(ConfigRefNum, FileEnd);
  100.                         ErrorCode := 502;
  101.                         if (ConfigErr = NoErr) then
  102.                             begin
  103.                                 if (FileEnd > 317) then        {    Is file longer than our deepest SetFPos (it should be 349)?    }
  104.                                     begin
  105.                                         ErrorCode := 503;
  106.                                         CharsToSend := 41;
  107.                                         ConfigErr := SetFPos(ConfigRefNum, fsFromStart, 57);
  108.                                         if (ConfigErr <> NoErr) then
  109.                                             ConfigErrorFlag := true;
  110.                                         ConfigErr := FSRead(ConfigRefNum, CharsToSend, @AString);
  111.                                         if (ConfigErr <> NoErr) then
  112.                                             ConfigErrorFlag := true;
  113.                                         if length(AString) > 0 then
  114.                                             ULPath := AString;
  115.                                         ULPath := concat(ULPath, ':UserLog');
  116.  
  117.                                         if (ConfigErrorFlag = false) then
  118.                                             begin
  119.                                                 ErrorCode := 504;
  120.                                                 CharsToSend := 41;
  121.                                                 ConfigErr := SetFPos(ConfigRefNum, fsFromStart, 98);
  122.                                                 if (ConfigErr <> NoErr) then
  123.                                                     ConfigErrorFlag := true;
  124.                                                 ConfigErr := FSRead(ConfigRefNum, CharsToSend, @AString);
  125.                                                 if (ConfigErr <> NoErr) then
  126.                                                     ConfigErrorFlag := true;
  127.                                                 if length(AString) > 0 then
  128.                                                     CLPath := AString;
  129.                                                 CLPath := concat(CLPath, ':CallerLog');
  130.                                             end;
  131.  
  132.                                         if (ConfigErrorFlag = false) then
  133.                                             begin
  134.                                                 ErrorCode := 505;
  135.                                                 CharsToSend := 80;
  136.                                                 ConfigErr := SetFPos(ConfigRefNum, fsFromStart, 139);
  137.                                                 if (ConfigErr <> NoErr) then
  138.                                                     ConfigErrorFlag := true;
  139.                                                 ConfigErr := FSRead(ConfigRefNum, CharsToSend, @AString);
  140.                                                 if (ConfigErr <> NoErr) then
  141.                                                     ConfigErrorFlag := true;
  142.                                                 if length(AString) > 0 then
  143.                                                     MESSAGESPath := AString;
  144.                                                 MESSAGESPath := concat(MESSAGESPath, ':MESSAGES');
  145.                                             end;
  146.  
  147.                                         if (ConfigErrorFlag = false) then
  148.                                             begin
  149.                                                 ErrorCode := 506;
  150.                                                 CharsToSend := 31;
  151.                                                 ConfigErr := SetFPos(ConfigRefNum, fsFromStart, 317);
  152.                                                 if (ConfigErr <> NoErr) then
  153.                                                     ConfigErrorFlag := true;
  154.                                                 ConfigErr := FSRead(ConfigRefNum, CharsToSend, @AString);
  155.                                                 if (ConfigErr <> NoErr) then
  156.                                                     ConfigErrorFlag := true;
  157.                                                 if length(AString) > 0 then
  158.                                                     SysopName := AString
  159.                                             end;
  160.  
  161.                                         if (ConfigErrorFlag = false) then
  162.                                             begin
  163.                                                 ErrorCode := 507;
  164.                                                 CharsToSend := 4;
  165.                                                 ConfigErr := SetFPos(ConfigRefNum, fsFromStart, 308);
  166.                                                 if (ConfigErr <> NoErr) then
  167.                                                     ConfigErrorFlag := true;
  168.                                                 ConfigErr := FSRead(ConfigRefNum, CharsToSend, @ALongInt);
  169.                                                 if (ConfigErr <> NoErr) then
  170.                                                     ConfigErrorFlag := true;
  171.                                                 Secs2Date(ALongInt, NextLaunchDateRec);
  172.                                             end;
  173.  
  174.                                     end
  175.                             end    {    if FileEnd > 317        }
  176.                         else
  177.                             ConfigErrorFlag := true;
  178.                     end    {    Error on get eof of Config    }
  179.                 else
  180.                     ConfigErrorFlag := true;
  181.             end    {    Error on open Config    }
  182.         else
  183.             ConfigErrorFlag := true;
  184.         if ConfigErrorFlag then
  185.             Err := ConfigErr;
  186.         ConfigErr := FSClose(ConfigRefNum);
  187.     end;
  188. { ------------------------------------------------------ }
  189. end.    {    Unit    }